//
//  UIImage+Developer.h
//  HSLuser
//
//  Created by 合事佬 on 2018/4/18.
//  Copyright © 2018年 石世彪. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIImage (Developer)

/**
 *  改变图片颜色
 *
 *  @param color 颜色值
 */
- (UIImage *)imageWithColor:(UIColor *)color;

/**
 *  返回一张可以随意拉伸不变形的图片
 *
 *  @param name 图片名字
 */
+ (UIImage *)resizableImage:(NSString *)name;

/**
 *  图片恢复完整
 *
 *
 */
- (UIImage *)fixOrientation;

/**
 *  图片合成
 *
 *  @param image1 第一张图片
 *  @param image2 第二张图片
 */
-(UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2;

/**
 *  图片截屏
 *
 *  @param view view
 *
 */
- (UIImage *)snapshot:(UIView *)view;

/**
 *  图片的磨玻璃效果
 *
 *  @param imageView       图片控件
 *  @param andImageName    图片名字
 */
-(void)blurImageWithImageView:(UIImageView *)imageView andImageName:(NSString *)andImageName;

/**
 *  图片的压缩
 *
 *  @param image           图片
 *  @param asize            长，宽
 *  保持原来的长宽比，生成一个缩率图
 */
- (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image asize:(CGSize)asize;

/**
 *  根据颜色生成纯色图片
 *
 *  @param color           颜色值
 *
 */
+ (UIImage *)imageWithColor:(UIColor *)color;

/**
 *  取图片某一像素的颜色
 *
 *  @param point        二维坐标系的点
 *
 */
- (UIColor *)colorAtPixel:(CGPoint)point;

/**
 *  获得灰度图
 *
 */
- (UIImage *)convertToGrayImage;

/**
 *  按给定的方向旋转图片
 *  @param  orient     方向
 */
- (UIImage*)rotate:(UIImageOrientation)orient;

/**
 *  垂直翻转
 *
 */
- (UIImage *)flipVertical;

/**
 *  水平翻转
 *
 */
- (UIImage *)flipHorizontal;

/**
 *  将图片旋转弧度radians
 *  @param  radians     弧度
 */
- (UIImage *)imageRotatedByRadians:(CGFloat)radians;

/**
 *  将图片旋转角度degrees
 *
 */
- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees;

/**
 *  截取当前image对象rect区域内的图像
 *  @param  rect     区域
 */
- (UIImage *)subImageWithRect:(CGRect)rect;

/**
 *  压缩图片至指定尺寸
 *  @param  size     尺寸
 */
- (UIImage *)rescaleImageToSize:(CGSize)size;

/**
 *  压缩图片至指定像素
 *  @param  toPX     浮点数
 */
- (UIImage *)rescaleImageToPX:(CGFloat )toPX;

/**
 *  指定大小生成一个平铺的图片
 *  @param  tilesize     大小
 */
- (UIImage *)getTiledImageWithSize:(CGSize)tilesize;

/**
*  UIView转化为UIImage
*  @param  view     view
*/
+ (UIImage *)imageFromView:(UIView *)view;


/**
 *  用一个Gif生成UIImage，传入一个GIFData
 *  @param  theData     data类型
 */
+ (UIImage *)animatedImageWithAnimatedGIFData:(NSData *)theData;

/**
 *  用一个Gif生成UIImage，传入一个GIF路径
 *  @param  theURL     路径
 */
+ (UIImage *)animatedImageWithAnimatedGIFURL:(NSURL *)theURL;
@end
